Electronic controllers are commonly used to control the operation of many different household and industrial devices. For example, electronic controllers are used to control the functioning of stoves, blenders, bathing unit systems, audio devices, pumps, motors, keypads, LED intelligent light bulb, lighting devices, displays and restaurant appliances amongst many others.
A same hardware platform can be used in a controller for different variations/models of a device, where the variations/models may be perceptible for example in terms of the features provided by the device. Adapting a hardware platform of an electronic controller to different variations/models of a device sometimes merely amounts to installing different associated software options in a programmable memory of the hardware platform. Such a process is typically referred to as programming or loading the firmware of the controller. For example, depending on the software options provided on the hardware platform of a bathing unit controller, that bathing unit controller may be used for controlling components of either an economy-end bathing unit system (equipped with a basic set of components such as a heater and a single circulation pump) or a high/luxury-end bathing unit system (equipped luxury features such as for example audio/visual devices, jets, lighting device, sanitizing devices and the like). Using a same hardware platform for different variations/models of a device may present advantages in terms of design and production costs since that same hardware platform can be built and used in connection with multiple end devices/systems.
The installation of software options on a hardware platform of an electronic controller is typically performed by the device manufacturer on an assembly line.
A deficiency associated with many conventional methods for installing such software options is that they typically require that the electronic controllers, or portions thereof, be activated (for example by plugging them into an external source of electrical power) prior to and during the installation of the software options. This requirement implies a level of complexity for the assembly line since the latter must be configured with power outlets and connectors for supplying power to the electronic controllers. It also requires that the electronic controllers be physically connected to such power outlets and connectors, by people or machines for example. This in turn adds to the manufacturing cost of the device.
A related deficiency associated with conventional methods for installing software options on electronic controllers of the type presented above is that, once an electronic controller is packaged for shipment, there are no easy techniques for allowing the electronic controller to be configured (or reconfigured) without removing the electronic controller from the packaging and without activating it. As such, the packaging of the electronic controller is often delayed to until after the software options have been installed.
Another deficiency associated with conventional methods for installing software options on electronic controllers of the type presented above is that, in order to update the firmware of the electronic controller, for example to add additional features and/or to correct a defect in the software currently loaded on the electronic controller, the controller must again be activated, which in some cases may not be desirable.
With respect to intelligent LED light bulbs, another deficiency associated with conventional methods for updating firmware of electronic controllers integrated into such LED light bulbs is that there is no suitable way to access the processor inside the bulb to reprogram it or update it, for example to add additional features and/or to correct a defect in the software currently loaded in the light bulb, once the light bulb is manufactured.
In the above cases, the process of configuring or updating the firmware of electronic controllers is either not available or is inconvenient, cumbersome and/or expensive.
In light of the above, it can be seen that there is a need in the industry for a method, system and device that is able to alleviate, at least in part, the deficiencies associated with the traditional methods of configuring the firmware of electronic controllers.